/*
  学习目标：受控组件-常见表单元素
*/

import React from 'react';

export default class App extends React.Component {
  state = {
    username: 'zs',
    desc: '',
    city: '2',
    isSingle: true,
  };

  handleChange = (e) => {
    //🔔 e.target 代表dom元素
    //🔔 dom元素在JS中是一个对象
    const { name, value, type, checked } = e.target;
    this.setState({ [name]: type === 'checkbox' ? checked : value });
  };

  render() {
    const { username, desc, city, isSingle } = this.state;
    return (
      <div>
        姓名：
        <input
          type="text"
          name="username"
          value={username}
          onChange={this.handleChange}
        />
        <br />
        描述：
        <textarea
          value={desc}
          name="desc"
          onChange={this.handleChange}
        ></textarea>
        <br />
        城市：
        <select value={city} name="city" onChange={this.handleChange}>
          <option value="1">北京</option>
          <option value="2">上海</option>
          <option value="3">广州</option>
          <option value="4">深圳</option>
        </select>
        <br />
        是否单身：
        <input
          type="checkbox"
          name="isSingle"
          checked={isSingle}
          onChange={this.handleChange}
        />
      </div>
    );
  }
}
